package com.hhxy.lambda;

@FunctionalInterface
interface Animal {
    void shout();
}

class Teacher {
    public static void main(String[] args) {
        //直接使用匿名内部类
        Animal s1 = new Animal() {//使用匿名内部类就不需要再去定义一个Dog类，可以直接重写接口中的方法）
            @Override
            public void shout() {
                System.out.println("汪汪汪……");
            }
        };
        go(s1);//此处进行了对象回调
        //使用Lanmbda表达式，简写
        Animal s2 = () -> {
            System.out.println("汪汪汪……");
        };
        go(s2);
        //进一步简写
        go(()->{
            System.out.println("汪汪汪……");
        });

    }
    public static void go(Animal s){
        s.shout();
    }
}
